package com.pic.others.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.pic.common.utils.R;
import com.pic.others.domain.dto.history.HistoryUserDTO;
import com.pic.others.domain.dto.picture.PictureInfoDTO;
import com.pic.others.domain.dto.picture.PictureWithCategoryDTO;
import com.pic.others.domain.dto.user.UserCapacityDTO;
import com.pic.others.domain.po.Picture;
import com.pic.others.domain.vo.picture.PictureDeleVO;
import org.springframework.web.multipart.MultipartFile;

import java.time.LocalDate;
import java.util.List;
import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author koshi
 * @since 2023-11-24
 */
public interface IPictureService extends IService<Picture> {

    R<Picture> fileupload(MultipartFile file) throws Exception;

    R<String> deletePictureByLocate(PictureDeleVO vo);

    R<String> deletePictureByLocates(List<PictureDeleVO> voList);

    R<Map<LocalDate,List<Picture>>> getManyPictures();

    R<PictureWithCategoryDTO> getManyPictureByCategory(long categoryId);

//    R<String> getTextByTess4J(String locate);

    R<List<Picture>> getPicturesByLocalDate(LocalDate localDate);

    R<String> downLoadPicture(String locate);

    public R<String> downLoadPictures(List<String> locates) ;

    R<PictureInfoDTO> getPictureByPictureId(long pictureId);

//    R<String> fileuploads(MultipartFile[] files);
R<String> fileuploads(List<MultipartFile> files) throws Exception;

    R<HistoryUserDTO> getUserHistories();

    R<String> deleteHistory(String info);

    R<String> deleteHistories();

    R<String> getAutoBeautifyPicture(Picture picture);

    R<List<Picture>> getPictureByWord(String word);

    R<Picture> getPictureBySmoothing();

    R<Picture> getPictureByClarity();

    R<Picture> getPictureByOtherStyle();

    R<UserCapacityDTO> getUserCapacity();
}
